Embodiments of the present invention relate generally to pattern recognition, and more specifically to rapid matching of data to reference templates or patterns.
In a general pattern matching process, reference templates are compared to input data to determine which reference template best matches the input data.
One pattern matching architecture is a general purpose computer running pattern recognition software. This architecture has the following advantages: a) it can accommodate a variety of pattern comparison algorithms due to the software implementation; and b) a large number of reference templates can typically be used since the number of reference templates is usually limited only by the amount of computer system memory. However, this architecture suffers from the following drawbacks: slow performance, high electrical power consumption, too large for many applications, expensive, and complex software. Such architectures are not well suited for applications that need rapid pattern matching or that must meet the low power and portability requirements of embedded applications.
Another pattern matching architecture uses a content addressable memory that includes an embedded hardware comparator in each memory cell to compare the contents of its memory location to a corresponding bit of the input data according to the embedded comparator's comparison function. This architecture has the advantages of being fast (due to its hardware implementation) and relatively small. However, it suffers from a number of disadvantages: 1) limitations regarding the type and complexity of comparison algorithms that can be used, 2) relatively high power consumption, 3) highly complex design at the memory cell level, and 4) not scalable to a large number of reference templates. Implementing a hardware comparator for each memory cell is expensive, precludes more complex comparison criteria, and limits the flexibility of implementing multiple comparison criteria. For example, such a pattern recognition architecture would typically only include an exact bit match comparison to determine which stored reference template, if any, matched all of the bits of the input data. More complex comparison criteria would be too complex and/or expensive to use in this architecture.
Although the foregoing architectures are suitable for some pattern recognition applications, other applications need a pattern matching architecture that is fast, provides a choice of multiple comparison algorithms (including more complex algorithms), and consumes relatively low power. Thus, a need exists for improved pattern matching architectures.